/*
	NounEnhancementSpecials.h
	(c)2008 Palestar Inc, Jeff Everett
*/



#ifndef NOUNENHANCEMENTSPECIALS_H
#define NOUNENHANCEMENTSPECIALS_H

#include "NounEnhancement.h"


class DLL NounEnhancement_FullJumpDrive : public NounEnhancement
{
public:
	DECLARE_WIDGET_CLASS();
	DECLARE_PROPERTY_LIST();

	NounEnhancement_FullJumpDrive();

	CharString GetName() const { return "JumpDrive Fuel Refill";}
	ApplyType applyType() const { return AT_USE;}
};

class DLL NounEnhancement_HalfEnergy : public NounEnhancement
{
public:
	DECLARE_WIDGET_CLASS();
	DECLARE_PROPERTY_LIST();

	NounEnhancement_HalfEnergy();

	CharString GetName() const { return "Energy Recharger MkI";}
	ApplyType applyType() const { return AT_USE;}
	Rarity rarity()  const {return RARITY_RARE;}
};

class DLL NounEnhancement_LevelOneBuild : public NounEnhancement
{
public:
	DECLARE_WIDGET_CLASS();
	DECLARE_PROPERTY_LIST();

	NounEnhancement_LevelOneBuild();

	CharString GetName() const { return "Minor Build Computer";}
	ApplyType applyType() const { return AT_ATTACH;}

	dword requirementFlags() const {return REQ_ENGINEER;} 
	Rarity rarity()  const {return RARITY_RARE;}
};

class DLL NounEnhancement_MavericksUltimateBuild : public NounEnhancement
{
public:
	DECLARE_WIDGET_CLASS();
	DECLARE_PROPERTY_LIST();

	NounEnhancement_MavericksUltimateBuild();

	CharString GetName() const { return "Mavericks Ultimate Build Computer";}
	ApplyType applyType() const { return AT_ATTACH;}

	dword requirementFlags() const {return REQ_ADMIN;} 
	Rarity rarity()  const {return RARITY_ULTRA_RARE;}
};


class DLL NounEnhancement_TrailDeepPurple : public NounEnhancement
{
public:
	DECLARE_WIDGET_CLASS();
	DECLARE_PROPERTY_LIST();

	NounEnhancement_TrailDeepPurple();

	CharString GetName() const { return "Deep Purple Exhaust";}
	ApplyType applyType() const { return AT_ATTACH;}

	dword requirementFlags() const {return REQ_SUBSCRIBER|REQ_ANY;} 
	Rarity rarity()  const {return RARITY_RARE;}

};

class DLL NounEnhancement_TrailForestGreen : public NounEnhancement
{
public:
	DECLARE_WIDGET_CLASS();
	DECLARE_PROPERTY_LIST();

	NounEnhancement_TrailForestGreen();

	CharString GetName() const { return "Forest Green Exhaust";}
	ApplyType applyType() const { return AT_ATTACH;}

	dword requirementFlags() const {return REQ_SUBSCRIBER|REQ_ANY;} 
	Rarity rarity()  const {return RARITY_RARE;}

};

class DLL NounEnhancement_TrailRedHot : public NounEnhancement
{
public:
	DECLARE_WIDGET_CLASS();
	DECLARE_PROPERTY_LIST();

	NounEnhancement_TrailRedHot();

	CharString GetName() const { return "Red Hot Exhaust";}
	ApplyType applyType() const { return AT_ATTACH;}

	dword requirementFlags() const {return REQ_SUBSCRIBER|REQ_ANY;} 
	Rarity rarity()  const {return RARITY_RARE;}

};

class DLL NounEnhancement_TrailDarkBlue : public NounEnhancement
{
public:
	DECLARE_WIDGET_CLASS();
	DECLARE_PROPERTY_LIST();

	NounEnhancement_TrailDarkBlue();

	CharString GetName() const { return "Dark Blue Exhaust";}
	ApplyType applyType() const { return AT_ATTACH;}

	dword requirementFlags() const {return REQ_SUBSCRIBER|REQ_ANY;} 
	Rarity rarity()  const {return RARITY_RARE;}

};

#endif